package com.kjzy.controller;

import com.github.pagehelper.PageInfo;
import com.kjzy.pojo.Devices;
import com.kjzy.pojo.User;
import com.kjzy.service.DevicesService;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
@Controller
public class DevicesController {
    @Autowired
    private DevicesService devicesService;

    @RequestMapping("/devices_manage")
    public String toDevicesManage(){
        return "admin/devices_manage";
    }
    @RequestMapping("listDevices.action")
    public String list(Devices devices,
                       @RequestParam(defaultValue = "1") int pageNum,
                       @RequestParam(defaultValue = "10") int pageSize,
                       Model model){
        PageInfo<Devices> pageInfo =devicesService.findAllD(devices,pageNum,pageSize);

        //3. 将分页信息存入Model中，供视图使用
        model.addAttribute("devicesList", pageInfo.getList());
        model.addAttribute("pageInfo", pageInfo);

        //4. 返回待跳转的逻辑视图名。本例中，将跳转
        // 到"/WEB-INF/jsp/admin/user_manage.jsp"。
        return "admin/devices_manage";
    }
    @RequestMapping(value = "/createDevices.action", method = RequestMethod.POST)
    @ResponseBody
    public String createDevices(@RequestParam("name")String name,
                                @RequestParam("num")Integer num,
                                @RequestParam("money")Integer money) throws Exception{
        Devices devices=new Devices();
        devices.setName(name);
        devices.setNum(num);
        devices.setTime(new Date());
        devices.setMoney(money);
        // 3. 调用service层的方法实现：在用户表中新增一条用户记录。
        // 4. 返回(新增用户的)结果，不是跳转到新页面。
        String result=devicesService.createDevices(devices);
        // 本例中，返回的不是一段JSON数据，就是一个普通的String数据("SUCCESS"
        // 或错误提示信息)。 但是，需要在方法上添加@ResponseBody注解。如果不添加该
        // 注解，SpringMVC会将待返回的String数据，误认为是待跳转新页面的路径值，即
        // 会误认为要跳转到/WEB-INF/jsp/SUCCESS.jsp或其它jsp页面。
        return result;
    }
    @RequestMapping("/findDevicesById.action")
    @ResponseBody
    public Devices findDevicesById(@RequestParam("id")Integer id){
        Devices devices=devicesService.findByIdD(id);
        return devices;
    }
    @RequestMapping("/updateDevices.action")
    @ResponseBody
    public String updateDevices(@RequestBody Devices devices){
        String result=devicesService.updateDevices(devices);
        return result;
    }
    @RequestMapping("/deleteDevices.action")
    @ResponseBody
    public String deleteDevices(@RequestParam("id") Integer id){
        String result = devicesService.deleteDevices(id);
        // 3. 返回(删除用户的)结果，不是跳转到新页面。
        // 本例中，返回的不是一段JSON数据，就是一个普通的String数据("SUCCESS"
        // 或错误提示信息)。 但是，需要在方法上添加@ResponseBody注解。如果不添加该
        // 注解，SpringMVC会将待返回的String数据，误认为是待跳转新页面的路径值，即
        // 会误认为要跳转到/WEB-INF/jsp/SUCCESS.jsp或其它jsp页面。
        return result;
    }

}
